
package middleware.p2p.replication;

import middleware.p2p.log.*;
import middleware.p2p.log.XmlHashtableType.XmlHashtableValue;

import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlElementDecl;
import javax.xml.bind.annotation.XmlRegistry;
import javax.xml.namespace.QName;


/**
 * This object contains factory methods for each 
 * Java content interface and Java element interface 
 * generated in the middleware.p2p.replication package. 
 * <p>An ObjectFactory allows you to programatically 
 * construct new instances of the Java representation 
 * for XML content. The Java representation of XML 
 * content can consist of schema derived interfaces 
 * and classes representing the binding of schema 
 * type definitions, element declarations and model 
 * groups.  Factory methods for each of these are 
 * provided in this class.
 * 
 */
@XmlRegistry
public class ObjectFactory {

    private final static QName _GetReplica_QNAME = new QName("http://replication.p2p.middleware/", "getReplica");
    private final static QName _StoreReplicaResponse_QNAME = new QName("http://replication.p2p.middleware/", "storeReplicaResponse");
    private final static QName _DoCommit_QNAME = new QName("http://replication.p2p.middleware/", "doCommit");
    private final static QName _DoCommitResponse_QNAME = new QName("http://replication.p2p.middleware/", "doCommitResponse");
    private final static QName _GetReplicaResponse_QNAME = new QName("http://replication.p2p.middleware/", "getReplicaResponse");
    private final static QName _CanCommit_QNAME = new QName("http://replication.p2p.middleware/", "canCommit");
    private final static QName _VectorClock_QNAME = new QName("http://replication.p2p.middleware/", "vectorClock");
    private final static QName _DoAbortResponse_QNAME = new QName("http://replication.p2p.middleware/", "doAbortResponse");
    private final static QName _ResetClockResponse_QNAME = new QName("http://replication.p2p.middleware/", "resetClockResponse");
    private final static QName _StoreReplica_QNAME = new QName("http://replication.p2p.middleware/", "storeReplica");
    private final static QName _ResetClock_QNAME = new QName("http://replication.p2p.middleware/", "resetClock");
    private final static QName _CanCommitResponse_QNAME = new QName("http://replication.p2p.middleware/", "canCommitResponse");
    private final static QName _DoAbort_QNAME = new QName("http://replication.p2p.middleware/", "doAbort");

    /**
     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: middleware.p2p.replication
     * 
     */
    public ObjectFactory() {
    }

    /**
     * Create an instance of {@link DoCommitResponse }
     * 
     */
    public DoCommitResponse createDoCommitResponse() {
        return new DoCommitResponse();
    }

    /**
     * Create an instance of {@link GetReplicaResponse }
     * 
     */
    public GetReplicaResponse createGetReplicaResponse() {
        return new GetReplicaResponse();
    }

    /**
     * Create an instance of {@link DoCommit }
     * 
     */
    public DoCommit createDoCommit() {
        return new DoCommit();
    }

    /**
     * Create an instance of {@link CanCommit }
     * 
     */
    public CanCommit createCanCommit() {
        return new CanCommit();
    }

    /**
     * Create an instance of {@link DoAbort }
     * 
     */
    public DoAbort createDoAbort() {
        return new DoAbort();
    }

    /**
     * Create an instance of {@link ResetClockResponse }
     * 
     */
    public ResetClockResponse createResetClockResponse() {
        return new ResetClockResponse();
    }

    /**
     * Create an instance of {@link DoAbortResponse }
     * 
     */
    public DoAbortResponse createDoAbortResponse() {
        return new DoAbortResponse();
    }

    /**
     * Create an instance of {@link StoreReplica }
     * 
     */
    public StoreReplica createStoreReplica() {
        return new StoreReplica();
    }

    /**
     * Create an instance of {@link GetReplica }
     * 
     */
    public GetReplica createGetReplica() {
        return new GetReplica();
    }

    /**
     * Create an instance of {@link VectorClock }
     * 
     */
    public VectorClock createVectorClock() {
        return new VectorClock();
    }

    /**
     * Create an instance of {@link StoreReplicaResponse }
     * 
     */
    public StoreReplicaResponse createStoreReplicaResponse() {
        return new StoreReplicaResponse();
    }

    /**
     * Create an instance of {@link XmlHashtableType }
     * 
     */
    public XmlHashtableType createXmlHashtableType() {
        return new XmlHashtableType();
    }

    /**
     * Create an instance of {@link CanCommitResponse }
     * 
     */
    public CanCommitResponse createCanCommitResponse() {
        return new CanCommitResponse();
    }

    /**
     * Create an instance of {@link ResetClock }
     * 
     */
    public ResetClock createResetClock() {
        return new ResetClock();
    }

    /**
     * Create an instance of {@link XmlHashtableValue }
     * 
     */
    public XmlHashtableValue createXmlHashtableValue() {
        return new XmlHashtableValue();
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link GetReplica }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "http://replication.p2p.middleware/", name = "getReplica")
    public JAXBElement<GetReplica> createGetReplica(GetReplica value) {
        return new JAXBElement<GetReplica>(_GetReplica_QNAME, GetReplica.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link StoreReplicaResponse }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "http://replication.p2p.middleware/", name = "storeReplicaResponse")
    public JAXBElement<StoreReplicaResponse> createStoreReplicaResponse(StoreReplicaResponse value) {
        return new JAXBElement<StoreReplicaResponse>(_StoreReplicaResponse_QNAME, StoreReplicaResponse.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link DoCommit }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "http://replication.p2p.middleware/", name = "doCommit")
    public JAXBElement<DoCommit> createDoCommit(DoCommit value) {
        return new JAXBElement<DoCommit>(_DoCommit_QNAME, DoCommit.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link DoCommitResponse }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "http://replication.p2p.middleware/", name = "doCommitResponse")
    public JAXBElement<DoCommitResponse> createDoCommitResponse(DoCommitResponse value) {
        return new JAXBElement<DoCommitResponse>(_DoCommitResponse_QNAME, DoCommitResponse.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link GetReplicaResponse }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "http://replication.p2p.middleware/", name = "getReplicaResponse")
    public JAXBElement<GetReplicaResponse> createGetReplicaResponse(GetReplicaResponse value) {
        return new JAXBElement<GetReplicaResponse>(_GetReplicaResponse_QNAME, GetReplicaResponse.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link CanCommit }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "http://replication.p2p.middleware/", name = "canCommit")
    public JAXBElement<CanCommit> createCanCommit(CanCommit value) {
        return new JAXBElement<CanCommit>(_CanCommit_QNAME, CanCommit.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link VectorClock }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "http://replication.p2p.middleware/", name = "vectorClock")
    public JAXBElement<VectorClock> createVectorClock(VectorClock value) {
        return new JAXBElement<VectorClock>(_VectorClock_QNAME, VectorClock.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link DoAbortResponse }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "http://replication.p2p.middleware/", name = "doAbortResponse")
    public JAXBElement<DoAbortResponse> createDoAbortResponse(DoAbortResponse value) {
        return new JAXBElement<DoAbortResponse>(_DoAbortResponse_QNAME, DoAbortResponse.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ResetClockResponse }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "http://replication.p2p.middleware/", name = "resetClockResponse")
    public JAXBElement<ResetClockResponse> createResetClockResponse(ResetClockResponse value) {
        return new JAXBElement<ResetClockResponse>(_ResetClockResponse_QNAME, ResetClockResponse.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link StoreReplica }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "http://replication.p2p.middleware/", name = "storeReplica")
    public JAXBElement<StoreReplica> createStoreReplica(StoreReplica value) {
        return new JAXBElement<StoreReplica>(_StoreReplica_QNAME, StoreReplica.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ResetClock }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "http://replication.p2p.middleware/", name = "resetClock")
    public JAXBElement<ResetClock> createResetClock(ResetClock value) {
        return new JAXBElement<ResetClock>(_ResetClock_QNAME, ResetClock.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link CanCommitResponse }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "http://replication.p2p.middleware/", name = "canCommitResponse")
    public JAXBElement<CanCommitResponse> createCanCommitResponse(CanCommitResponse value) {
        return new JAXBElement<CanCommitResponse>(_CanCommitResponse_QNAME, CanCommitResponse.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link DoAbort }{@code >}}
     * 
     */
    @XmlElementDecl(namespace = "http://replication.p2p.middleware/", name = "doAbort")
    public JAXBElement<DoAbort> createDoAbort(DoAbort value) {
        return new JAXBElement<DoAbort>(_DoAbort_QNAME, DoAbort.class, null, value);
    }

}
